dnl Check for xzcat, only needed if you have xz-compressed kernel modules.
AC_PATH_PROG(XZCAT,[xzcat],[no])
+dnl Check for zstdcat, only needed if you have zstd-compressed kernel modules.
+AC_PATH_PROG(ZSTDCAT,[zstdcat],[no])
+
dnl mke2fs.
AC_PATH_PROG([MKE2FS],[mke2fs],[no],
[$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR])
visit deps;
(* Copy module to the init directory.
- * Uncompress the module, if the name ends in .xz or .gz.
+ * Uncompress the module, if the name ends in .zst, .xz or .gz.
*)
let basename = Filename.basename modl in
let basename =
let len = String.length basename in
- if Config.xzcat <> "no" &&
+ if Config.zstdcat <> "no" &&
+ Filename.check_suffix basename ".zst"
+ then (
+ let basename = String.sub basename 0 (len-4) in
+ let cmd = sprintf "%s %s > %s"
+ (quote Config.zstdcat)
+ (quote (modpath // modl))
+ (quote (initdir // basename)) in
+ if debug >= 2 then printf "supermin: %s\n" cmd;
+ run_command cmd;
+ basename
+ )
+ else if Config.xzcat <> "no" &&
Filename.check_suffix basename ".xz"
then (
let basename = String.sub basename 0 (len-3) in